package HomeWork;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

class Solution {
    public List<List<Integer>> generate(int numRows) {
        //List<List<Integer>>相当与一个二维数组
        /*思路：
        1、先创建一个二维数组，里面存放numRows个一维数组
        2、而后先将第一个元素赋值为1 开始循环
        3、在循环中，第一个元素赋值为1 最后一个元素赋值为1，对中间的元素进行操作
         */
        //创建一个数组，里面有三个一维数组
        List<List<Integer>> ret = new ArrayList<>();
        List<Integer> list = new ArrayList<>();
        list.add(1);
        ret.add(list);
        for (int i = 1; i < numRows; i++) {
            //i 循环代表进行了几行
            List<Integer> curRows = new ArrayList<>();
            curRows.add(1);
            for (int j = 1; j < i; j++) {
                //获取上一行的同一位置 和上一行的前一位置
                int sum = ret.get(i-1).get(j) + ret.get(i-1).get(j-1);
                curRows.add(sum);
            }
            curRows.add(1);
            ret.add(curRows);
        }

        return ret;
    }
}
public class Test_1 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        Solution s = new Solution();
        s.generate(3);
    }
}
